我有一个现有的 Scala 加特林项目,我正在使用命令行执行该项目(当前没有 IDE)。我需要能够引用另一个外部项目,因此我尝试将 SBT 与它一起使用,但我似乎无法使其正常工作。
我引用了以下页面:https://gadling.io/docs/current/extensions/sbt_plugin/,我试图做的唯一真正的区别是不同的目录,这似乎是正确的。
每当我编译或运行 gatling:test 时,都会出现以下错误
object gatling is not a member of package io
[error] import io.gatling.core.Predef._
[error] ^
Run Code Online (Sandbox Code Playgroud)
问题似乎是 SBT 没有正确选择加特林项目。我的文件目前如下所示:
构建.sbt
enablePlugins(GatlingPlugin)
scalaVersion := "2.12.8"
scalacOptions := Seq(
"-encoding", "UTF-8", "-target:jvm-1.8", "-deprecation",
"-feature", "-unchecked", "-language:implicitConversions", "-language:postfixOps")
scalaSource in Compile := baseDirectory.value / "Gatling"
libraryDependencies += "io.gatling.highcharts" % "gatling-charts-highcharts" % "3.1.3" % "test"
libraryDependencies += "io.gatling" % "gatling-test-framework" % "3.1.3" % "test"
Run Code Online (Sandbox Code Playgroud)
插件.sbt
addSbtPlugin("io.gatling" % "gatling-sbt" % "3.0.0")
Run Code Online (Sandbox Code Playgroud)
构建属性
sbt.version=1.2.8
Run Code Online (Sandbox Code Playgroud)
如果您想知道为什么插件文件引用版本 3.0.0 …
我有一个接口,用于获取一些数据的MVC控制器.为了简单起见,到目前为止界面看起来像这样:
public interface IDataProvider
{
DataModel GetData();
}
Run Code Online (Sandbox Code Playgroud)
我对此接口进行了适当的单元测试,在操作中调用它.但是,在实际实现中,这将调用Web服务,当然可以抛出异常,因此如果确实如此,我想编写测试以确保在发生错误时记录消息.
为此,我有一个记录器接口,它实际上是一个名为ILogger的NLog接口.我能做到这一点:
public interface IDataProvider
{
DataModel GetData(ILogger logger);
}
Run Code Online (Sandbox Code Playgroud)
这将允许我为记录器运行单元测试,使其变得美观和简单.但是,我不认为这是正确的方法,因为记录器与此方法实际上无关.此外,如果我开始向我需要记录的接口添加其他方法,那么我将必须在所有这些方法的参数中包含记录器.
我现在能想到的最好的方法是在我的实现的构造函数中包含logger,它可能如下所示:
public class DataProvider : IDataProvider
{
private readonly ILogger _logger;
public DataProvider(ILogger logger)
{
_logger = logger;
}
public DataModel GetData()
{
// CODE GOES HERE
}
}
Run Code Online (Sandbox Code Playgroud)
但是这意味着我无法在单元测试中测试记录器.实现这一目标的最佳方法是什么,以便我可以将记录器与方法分开并使其可测试?
我会感激任何帮助,谢谢.
编辑:
我意识到我错过了单元测试代码这里是我的意思:
目前我确保以这种方式在我的动作中调用GetData:
var controller = new DataController(_dataProvider.Object);
controller.Index();
_dataProvider.Verify(dataProvider => dataProvider.GetData());
Run Code Online (Sandbox Code Playgroud)
我想做的是相同但对于记录器,但只有在抛出异常时才会这样:
_dataProvider.Setup(dataProvider => dataProvider.GetData()).Throws<WebException>();
var controller = new DataController(_dataProvider.Object);
controller.Index();
_logger.Verify(logger => logger.ErrorException(It.IsAny<string>(), It.IsAny<Exception>());
Run Code Online (Sandbox Code Playgroud)
显然,logger将在设置中提供给数据提供者.我希望这更有意义.
我对使用Entity Framework非常陌生,并且一直遇到无法编译我的代码的问题。我收到的错误消息是:
方法'System.Linq.Queryable.GroupJoin(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq。无法从用法中推断Expressions.Expression,TResult >>)'。尝试显式指定类型参数。
我进行了一些搜索,发现了一些类似的问题,但是没有任何帮助可以解决我的问题。我只是想输出一些简单的东西用于调试,这是我目前的代码:
var result = _context.Set<User>()
.Where(user => user.GraphMeetingStatistics && user.Id == userId)
.GroupJoin(_context.Set<Meeting>()
.Where(meeting => meeting.UserId == userId),
user => user.Id,
meeting => meeting.Guid,
(user, meeting) => meeting);
Run Code Online (Sandbox Code Playgroud)
我很乐意为您解决此错误
我是新来使用AngularJS与MVC5,我一直在寻找使用Web API与AngularJS因为它似乎是一个很好的解决方案将数据加载到您的客户端模式.
但是我注意到有不少指南使用异步操作返回Task<Model>,我不明白这会给你带来什么好处而只使用标准Web API操作(例如:http://monox.mono-software.com/blog/post/ Mono/233/Async-upload-using-angular-file-upload-directive-and-net-WebAPI-service /和http://www.asp.net/web-api/overview/getting-started-with-aspnet -web-api/build-a-single-page-application-%28spa%29-with-aspnet-web-api-and-angularjs).
由于这些对Web API的调用是异步的,我不知道为什么我们需要使这些方法调用异步.使用标准的Web API调用不是更好吗?
我不知道stackoverflow是否适合这个,但我希望能解释为什么调用这样做.
我一直在尝试为我的应用程序设置设置,但即使我一遍又一遍地查看它并将其与书中的示例和Craig Dunn博客上的示例进行比较,我似乎无法使其正常工作.
我知道语法必须是完美的,这个文件非常简单,目前我只是想显示一个文本字段.我确实对一个全新的项目进行了简要的工作,但是从那时起我就没有设法让它工作.
这是我的Root.plist文件的XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Root</key>
<dict>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Title</key>
<string>Group Name</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
<key>Key</key>
<string>usernameTextField</string>
<key>Title</key>
<string>Username</string>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
</dict>
</array>
</dict>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
正如我所说,我已经看了很多次,我看不出任何问题.文件构建操作设置为"内容","复制到输出目录"设置为"始终复制".我正在使用的MonoTouch版本是6.0.7.
我对这个问题有任何帮助表示感谢.谢谢
我正在尝试做一些非常简单的事情,其中我有 2 个已转换为数据框的数组,并且我想显示所有可能的组合。例如,我目前的输出如下所示:
+-----------+-----------+
| A | B |
+-----------+-----------+
| First | T |
| Second | P |
+-----------|-----------+
Run Code Online (Sandbox Code Playgroud)
然而,我实际上正在寻找的是:
+-----------+-----------+
| A | B |
+-----------+-----------+
| First | T |
| First | P |
| Second | T |
| Second | P |
+-----------|-----------+
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经有了一些相当直接的代码来将我的数组映射到列中,但是对于同时使用 Scala 和 Spark 还很陌生,我不确定如何获取所有这些组合。这是我到目前为止所拥有的:
val firstColumnValues = Array("First", "Second")
val secondColumnValues = Array("T", "P")
val xs = Array(firstColumnValues, secondColumnValues).transpose
val mapped = sparkContext.parallelize(xs).map(ys => Row(ys(0), ys(1)))
val df = …Run Code Online (Sandbox Code Playgroud) c# ×3
scala ×2
.net ×1
apache-spark ×1
asp.net ×1
async-await ×1
dataframe ×1
gatling ×1
interface ×1
ios6 ×1
ipad ×1
linq ×1
logging ×1
root.plist ×1
sbt ×1
testing ×1
xamarin.ios ×1